<?php
App::uses('AppController', 'Controller');

class UsersController extends AppController {

	public $uses = array();

    function beforeFilter() {
        parent::beforeFilter();
				$this->Auth->allow(array('add','remember', 'login_especial', 'forget', 'change'));

				$this->response->disableCache();
    }

    public function add()
    {
        $this->layout = 'default';

				$this->Auth->logout();
        if ($this->request->is('post')) {
					if($this->request->data['User']['password'] == $this->request->data['User']['confirm_password'])
					{
						unset($this->request->data['User']['confirm_password']);
						$this->request->data['User']['role'] = 'candidato';
						$this->User->create();
						//die(debug($this->request->data));
						$userCount = $this->User->find('count', array('conditions'=>array('username'=>$this->request->data['User']['username'])));
						//die(debug($userCount));
						if($userCount == 0)
						{
							if ($this->User->save($this->request->data)) {
								$this->Auth->login();
								$this->Session->setFlash(__('Criado com sucesso! Preencha seu currículo abaixo.'));
								$this->redirect(array('controller'=>'curriculos', 'action' => 'add'));
							} else {
								$this->Session->setFlash(__('Ocorreu um erro no seu cadastro'), 'Flashs/Error');
							}
						}
						else
						{
							$this->Session->setFlash(__('CPF já cadastrado.'), 'Flashs/Error');
						}
					}
					else {
						$this->Session->setFlash(__('Senhas não conferem.'), 'Flashs/Error');
					}
				}

    }

		public function add_adm()
    {
        $this->layout = 'default';

				$this->Auth->logout();
        if ($this->request->is('post')) {
					if($this->request->data['User']['password'] == $this->request->data['User']['confirm_password'])
					{
						unset($this->request->data['User']['confirm_password']);
						$this->request->data['User']['role'] = 'candidato';
						$this->User->create();
						//die(debug($this->request->data));
						$userCount = $this->User->find('count', array('conditions'=>array('username'=>$this->request->data['User']['username'])));
						//die(debug($userCount));
						if($userCount == 0)
						{
							if ($this->User->save($this->request->data)) {
								$this->Auth->login();
								$this->Session->setFlash(__('Criado com sucesso! Preencha seu currículo abaixo.'));
								$this->redirect(array('controller'=>'curriculos', 'action' => 'add'));
							} else {
								$this->Session->setFlash(__('Ocorreu um erro no seu cadastro'), 'Flashs/Error');
							}
						}
						else
						{
							$this->Session->setFlash(__('CPF já cadastrado.'), 'Flashs/Error');
						}
					}
					else {
						$this->Session->setFlash(__('Senhas não conferem.'), 'Flashs/Error');
					}
				}

    }

		public function admin_add()
		{
			$this->layout = 'admin';

			if ($this->request->is('post')) {
				$this->User->create();
				if ($this->User->save($this->request->data)) {
					$this->Session->setFlash(__('The user has been saved'));
					$this->redirect(array('action' => 'index'));
				} else {
					$this->Session->setFlash(__('The user could not be saved. Please, try again.'));
				}
			}
		}

    public function login()
    {
        $this->layout = 'default';
				$this->Auth->logout();
        if ($this->Auth->login())
        {
            $this->redirect($this->Auth->redirect());
        }
        else
        {

        }

				if ($this->request->is('post') && empty($this->Auth->user())) {
					$this->Session->setFlash(__('Usuário/senha inválido.'));
				}
    }


		public function login_especial()
		{
				$this->layout = 'default';
				$this->Auth->logout();
				if ($this->Auth->login())
				{
					$this->redirect(array('controller'=>'curriculos', 'action'=>'listar'));
				}
				else
				{

				}

				if ($this->request->is('post') && empty($this->Auth->user())) {
					$this->Session->setFlash(__('Usuário/senha inválido.'));
				}
		}

		public function remember()
		{
			$this->layout = 'default';

			$this->Session->setFlash(__('Enviamos para o seu e-mail cadastrado as instruções para troca de senha.'));

		}

		public function forget()
		{
			$this->layout = 'default';
			$this->Auth->logout();

			if ($this->request->is(array('post', 'put'))){

			}

		}

		public function change()
		{
			$this->layout = 'default';
			$this->Auth->logout();

			if ($this->request->is(array('post', 'put'))){
				if($this->request->data['User']['type']=='ghs'){
					$user = $this->User->find('first', array('conditions'=>array('User.username'=>$this->request->data['User']['username'], 'User.email'=>$this->request->data['User']['email'])));
					if(empty($user)){
						$this->Session->setFlash(__('E-mail e/ou CPF não cadastrados no sistema.'));
						$this->redirect(array('action'=>'forget'));
					}
					else{
						$type = "ok";
						$id = $user['User']['id'];
						$this->set(compact('type'));
						$this->set(compact('id'));
					}
				}
				else{
					if($this->request->data['User']['password'] == $this->request->data['User']['confirm_password'])
					{
						$this->User->save($this->request->data);
						$this->Session->setFlash(__('Senha atualizada com sucesso!'));
						$this->redirect(array('controller'=>'curriculos', 'action'=>'edit'));
					}
					else
					{
						$type = "ok";
						$id = $this->request->data['User']['id'];
						$this->set(compact('type'));
						$this->set(compact('id'));
						$this->Session->setFlash(__('Senhas não conferem'));
					}
				}
				//
			}

		}

    public function logout()
    {
        $this->redirect($this->Auth->logout());
    }

}
